From the prior art a number of techniques are known to program a non-volatile memory including boot strap techniques, background debug mode or special operating modes. The prior art techniques have in common that they require special pins and/or voltages to force the microprocessor into a special operating mode that allows programming of the non-volatile memory. This approach has the drawback that additional pins are required which are expensive in terms of silicon space usage and packaging costs for low pin-count parts. Further, programming of the non-volatile memory usually requires connecting the memory to special programming equipment and is thus not possible when the memory is built into a circuit.
There is a need for a user-programmable memory non-volatile memory applicable to microcontroller devices which facilitates easy programming of user memory.